-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathnetstring_write.c
More file actions
27 lines (27 loc) · 803 Bytes
/
Copy pathnetstring_write.c
File metadata and controls
27 lines (27 loc) · 803 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*
%use fmt_uint;
*/
/* Public Domain */
#include "netstring.h"
#include "buffer.h"
#include "str.h"
#include "fmt.h"
int netstring_write(buffer* outbuf, const char *instr, unsigned int len)
{
unsigned int sizedigits;
char sizbuf[FMT_ULONG];
sizedigits = fmt_uint(sizbuf,len);
if(buffer_putalign(outbuf,"&",1)==-1) return 111;
if(buffer_putalign(outbuf,sizbuf,sizedigits)==-1) return 111;
if(buffer_putalign(outbuf,":",1)==-1) return 111;
if(buffer_putalign(outbuf,instr,len)==-1) return 111;
if(buffer_putalign(outbuf,",",1)==-1) return 111;
return 0;
}
int netstring_writeflush(buffer* outbuf, const char *instr, unsigned int len)
{
int r;
if((r=netstring_write(outbuf,instr,len))!=0) return r;
if((r=buffer_flush(outbuf))!=0) return r;
return 0;
}