summaryrefslogtreecommitdiffstats
path: root/lib/libcrypto/bio/bss_rtcp.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libcrypto/bio/bss_rtcp.c')
-rw-r--r--lib/libcrypto/bio/bss_rtcp.c294
1 files changed, 160 insertions, 134 deletions
diff --git a/lib/libcrypto/bio/bss_rtcp.c b/lib/libcrypto/bio/bss_rtcp.c
index 7dae4855640..84d01e58b47 100644
--- a/lib/libcrypto/bio/bss_rtcp.c
+++ b/lib/libcrypto/bio/bss_rtcp.c
@@ -73,31 +73,32 @@
typedef unsigned short io_channel;
/*************************************************************************/
-struct io_status { short status, count; long flags; };
+ struct io_status { short status, count;
+ long flags;
+};
-struct rpc_msg { /* Should have member alignment inhibited */
- char channel; /* 'A'-app data. 'R'-remote client 'G'-global */
- char function; /* 'G'-get, 'P'-put, 'C'-confirm, 'X'-close */
- unsigned short int length; /* Amount of data returned or max to return */
- char data[4092]; /* variable data */
+ struct rpc_msg { /* Should have member alignment inhibited */
+ char channel; /* 'A'-app data. 'R'-remote client 'G'-global */
+ char function; /* 'G'-get, 'P'-put, 'C'-confirm, 'X'-close */
+ unsigned short int length; /* Amount of data returned or max to return */
+ char data[4092]; /* variable data */
};
#define RPC_HDR_SIZE (sizeof(struct rpc_msg) - 4092)
struct rpc_ctx {
- int filled, pos;
- struct rpc_msg msg;
+ int filled, pos;
+ struct rpc_msg msg;
};
-static int rtcp_write(BIO *h,const char *buf,int num);
-static int rtcp_read(BIO *h,char *buf,int size);
-static int rtcp_puts(BIO *h,const char *str);
-static int rtcp_gets(BIO *h,char *str,int size);
-static long rtcp_ctrl(BIO *h,int cmd,long arg1,void *arg2);
+static int rtcp_write(BIO *h, const char *buf, int num);
+static int rtcp_read(BIO *h, char *buf, int size);
+static int rtcp_puts(BIO *h, const char *str);
+static int rtcp_gets(BIO *h, char *str, int size);
+static long rtcp_ctrl(BIO *h, int cmd, long arg1, void *arg2);
static int rtcp_new(BIO *h);
static int rtcp_free(BIO *data);
-static BIO_METHOD rtcp_method=
- {
+static BIO_METHOD rtcp_method = {
BIO_TYPE_FD,
"RTCP",
rtcp_write,
@@ -108,12 +109,13 @@ static BIO_METHOD rtcp_method=
rtcp_new,
rtcp_free,
NULL,
- };
+};
-BIO_METHOD *BIO_s_rtcp(void)
- {
- return(&rtcp_method);
- }
+BIO_METHOD
+*BIO_s_rtcp(void)
+{
+ return (&rtcp_method);
+}
/*****************************************************************************/
/* Decnet I/O routines.
*/
@@ -123,25 +125,28 @@ BIO_METHOD *BIO_s_rtcp(void)
#pragma message disable DOLLARID
#endif
-static int get ( io_channel chan, char *buffer, int maxlen, int *length )
+static int get(io_channel chan, char *buffer, int maxlen, int *length)
{
- int status;
- struct io_status iosb;
- status = sys$qiow ( 0, chan, IO$_READVBLK, &iosb, 0, 0,
- buffer, maxlen, 0, 0, 0, 0 );
- if ( (status&1) == 1 ) status = iosb.status;
- if ( (status&1) == 1 ) *length = iosb.count;
- return status;
+ int status;
+ struct io_status iosb;
+ status = sys$qiow(0, chan, IO$_READVBLK, &iosb, 0, 0, buffer, maxlen,
+ 0, 0, 0, 0 );
+ if ((status & 1) == 1)
+ status = iosb.status;
+ if ((status & 1) == 1 )
+ *length = iosb.count;
+ return status;
}
-static int put ( io_channel chan, char *buffer, int length )
+static int put(io_channel chan, char *buffer, int length)
{
- int status;
- struct io_status iosb;
- status = sys$qiow ( 0, chan, IO$_WRITEVBLK, &iosb, 0, 0,
- buffer, length, 0, 0, 0, 0 );
- if ( (status&1) == 1 ) status = iosb.status;
- return status;
+ int status;
+ struct io_status iosb;
+ status = sys$qiow ( 0, chan, IO$_WRITEVBLK, &iosb, 0, 0, buffer,
+ length, 0, 0, 0, 0 );
+ if ((status & 1) == 1)
+ status = iosb.status;
+ return status;
}
#ifdef __DECC
@@ -150,109 +155,127 @@ static int put ( io_channel chan, char *buffer, int length )
/***************************************************************************/
-static int rtcp_new(BIO *bi)
+static int
+rtcp_new(BIO *bi)
{
- struct rpc_ctx *ctx;
- bi->init=1;
- bi->num=0;
+ struct rpc_ctx *ctx;
+ bi->init = 1;
+ bi->num = 0;
bi->flags = 0;
- bi->ptr=OPENSSL_malloc(sizeof(struct rpc_ctx));
- ctx = (struct rpc_ctx *) bi->ptr;
+ bi->ptr = OPENSSL_malloc(sizeof(struct rpc_ctx));
+ ctx = (struct rpc_ctx *)bi->ptr;
ctx->filled = 0;
ctx->pos = 0;
- return(1);
+ return (1);
}
-static int rtcp_free(BIO *a)
+static int
+rtcp_free(BIO *a)
{
- if (a == NULL) return(0);
- if ( a->ptr ) OPENSSL_free ( a->ptr );
+ if (a == NULL)
+ return (0);
+ if (a->ptr)
+ OPENSSL_free(a->ptr);
a->ptr = NULL;
- return(1);
+ return (1);
}
-
-static int rtcp_read(BIO *b, char *out, int outl)
+
+static int
+rtcp_read(BIO *b, char *out, int outl)
{
- int status, length;
- struct rpc_ctx *ctx;
- /*
- * read data, return existing.
- */
- ctx = (struct rpc_ctx *) b->ptr;
- if ( ctx->pos < ctx->filled ) {
- length = ctx->filled - ctx->pos;
- if ( length > outl ) length = outl;
- memmove ( out, &ctx->msg.data[ctx->pos], length );
- ctx->pos += length;
- return length;
- }
- /*
- * Requst more data from R channel.
- */
- ctx->msg.channel = 'R';
- ctx->msg.function = 'G';
- ctx->msg.length = sizeof(ctx->msg.data);
- status = put ( b->num, (char *) &ctx->msg, RPC_HDR_SIZE );
- if ( (status&1) == 0 ) {
- return -1;
- }
- /*
- * Read.
- */
- ctx->pos = ctx->filled = 0;
- status = get ( b->num, (char *) &ctx->msg, sizeof(ctx->msg), &length );
- if ( (status&1) == 0 ) length = -1;
- if ( ctx->msg.channel != 'R' || ctx->msg.function != 'C' ) {
- length = -1;
- }
- ctx->filled = length - RPC_HDR_SIZE;
-
- if ( ctx->pos < ctx->filled ) {
- length = ctx->filled - ctx->pos;
- if ( length > outl ) length = outl;
- memmove ( out, ctx->msg.data, length );
- ctx->pos += length;
- return length;
- }
+ int status, length;
+ struct rpc_ctx *ctx;
+ /*
+ * read data, return existing.
+ */
+ ctx = (struct rpc_ctx *)b->ptr;
+ if (ctx->pos < ctx->filled) {
+ length = ctx->filled - ctx->pos;
+ if (length > outl)
+ length = outl;
+ memmove(out, &ctx->msg.data[ctx->pos], length);
+ ctx->pos += length;
+ return length;
+ }
+ /*
+ * Requst more data from R channel.
+ */
+ ctx->msg.channel = 'R';
+ ctx->msg.function = 'G';
+ ctx->msg.length = sizeof(ctx->msg.data);
+ status = put(b->num, (char *)&ctx->msg, RPC_HDR_SIZE);
+ if ((status & 1) == 0 ) {
+ return -1;
+ }
+ /*
+ * Read.
+ */
+ ctx->pos = ctx->filled = 0;
+ status = get(b->num, (char *)&ctx->msg, sizeof(ctx->msg), &length);
+ if ((status & 1) == 0)
+ length = -1;
+ if (ctx->msg.channel != 'R' || ctx->msg.function != 'C') {
+ length = -1;
+ }
+ ctx->filled = length - RPC_HDR_SIZE;
+
+ if (ctx->pos < ctx->filled) {
+ length = ctx->filled - ctx->pos;
+ if (length > outl)
+ length = outl;
+ memmove(out, ctx->msg.data, length);
+ ctx->pos += length;
+ return length;
+ }
- return length;
+ return length;
}
-static int rtcp_write(BIO *b, const char *in, int inl)
+static int
+rtcp_write(BIO *b, const char *in, int inl)
{
- int status, i, segment, length;
- struct rpc_ctx *ctx;
- /*
- * Output data, send in chunks no larger that sizeof(ctx->msg.data).
- */
- ctx = (struct rpc_ctx *) b->ptr;
- for ( i = 0; i < inl; i += segment ) {
- segment = inl - i;
- if ( segment > sizeof(ctx->msg.data) ) segment = sizeof(ctx->msg.data);
- ctx->msg.channel = 'R';
- ctx->msg.function = 'P';
- ctx->msg.length = segment;
- memmove ( ctx->msg.data, &in[i], segment );
- status = put ( b->num, (char *) &ctx->msg, segment + RPC_HDR_SIZE );
- if ((status&1) == 0 ) { i = -1; break; }
+ int status, i, segment, length;
+ struct rpc_ctx *ctx;
+ /*
+ * Output data, send in chunks no larger that sizeof(ctx->msg.data).
+ */
+ ctx = (struct rpc_ctx *)b->ptr;
+ for (i = 0; i < inl; i += segment) {
+ segment = inl - i;
+ if (segment > sizeof(ctx->msg.data))
+ segment = sizeof(ctx->msg.data);
+ ctx->msg.channel = 'R';
+ ctx->msg.function = 'P';
+ ctx->msg.length = segment;
+ memmove(ctx->msg.data, &in[i], segment);
+ status = put(b->num, (char *) &ctx->msg,
+ segment + RPC_HDR_SIZE);
+ if ((status & 1) == 0) {
+ i = -1;
+ break;
+ }
- status = get ( b->num, (char *) &ctx->msg, sizeof(ctx->msg), &length );
- if ( ((status&1) == 0) || (length < RPC_HDR_SIZE) ) { i = -1; break; }
- if ( (ctx->msg.channel != 'R') || (ctx->msg.function != 'C') ) {
- printf("unexpected response when confirming put %c %c\n",
- ctx->msg.channel, ctx->msg.function );
+ status = get(b->num, (char *)&ctx->msg, sizeof(ctx->msg),
+ &length );
+ if (((status&1) == 0) || (length < RPC_HDR_SIZE)) {
+ i = -1;
+ break;
+ }
+ if ((ctx->msg.channel != 'R') || (ctx->msg.function != 'C')) {
+ printf("unexpected response when confirming put %c %c\n",
+ ctx->msg.channel, ctx->msg.function );
+ }
}
- }
- return(i);
+ return (i);
}
-static long rtcp_ctrl(BIO *b, int cmd, long num, void *ptr)
- {
- long ret=1;
+static long
+rtcp_ctrl(BIO *b, int cmd, long num, void *ptr)
+{
+ long ret = 1;
- switch (cmd)
- {
+ switch (cmd) {
case BIO_CTRL_RESET:
case BIO_CTRL_EOF:
ret = 1;
@@ -260,11 +283,11 @@ static long rtcp_ctrl(BIO *b, int cmd, long num, void *ptr)
case BIO_C_SET_FD:
b->num = num;
ret = 1;
- break;
+ break;
case BIO_CTRL_SET_CLOSE:
case BIO_CTRL_FLUSH:
case BIO_CTRL_DUP:
- ret=1;
+ ret = 1;
break;
case BIO_CTRL_GET_CLOSE:
case BIO_CTRL_INFO:
@@ -272,23 +295,26 @@ static long rtcp_ctrl(BIO *b, int cmd, long num, void *ptr)
case BIO_CTRL_PENDING:
case BIO_CTRL_WPENDING:
default:
- ret=0;
+ ret = 0;
break;
- }
- return(ret);
- }
-
-static int rtcp_gets(BIO *bp, char *buf, int size)
- {
- return(0);
}
+ return (ret);
+}
-static int rtcp_puts(BIO *bp, const char *str)
+static int
+rtcp_gets(BIO *bp, char *buf, int size)
{
- int length;
- if (str == NULL) return(0);
- length = strlen ( str );
- if ( length == 0 ) return (0);
- return rtcp_write ( bp,str, length );
+ return (0);
}
+static int
+rtcp_puts(BIO *bp, const char *str)
+{
+ int length;
+ if (str == NULL)
+ return (0);
+ length = strlen(str);
+ if (length == 0)
+ return (0);
+ return rtcp_write(bp, str, length);
+}