Browse Source

make create response and request also callable vith an va_list argument.

1.0.0
Georg Hopp 11 years ago
parent
commit
9e7b137d7b
  1. 2
      include/tr/interface/protocol.h
  2. 32
      src/i_protocol.c

2
include/tr/interface/protocol.h

@ -47,7 +47,9 @@ TR_INTERFACE(TR_Protocol) {
};
TR_ProtoMessage TR_protoCreateMessage(void *, TR_Socket);
TR_ProtoMessage TR_vprotoCreateRequest(void *, TR_Socket, va_list*);
TR_ProtoMessage TR_protoCreateRequest(void *, TR_Socket, ...);
TR_ProtoMessage TR_vprotoCreateResponse(void *, TR_Socket, va_list*);
TR_ProtoMessage TR_protoCreateResponse(void *, TR_Socket, ...);
size_t TR_protoParse(void *, TR_ProtoMessage, TR_RemoteData);
TR_RemoteData TR_protoCompose(void *, TR_ProtoMessage);

32
src/i_protocol.c

@ -42,34 +42,46 @@ TR_protoCreateMessage(void * _this, TR_Socket remote)
}
TR_ProtoMessage
TR_protoCreateRequest(void * _this, TR_Socket remote, ...)
TR_vprotoCreateRequest(void * _this, TR_Socket remote, va_list * params)
{
TR_ProtoMessage callret;
va_list params;
va_start(params, remote);
TR_RETCALL(_this, TR_Protocol, createRequest, callret, &params);
TR_RETCALL(_this, TR_Protocol, createRequest, callret, params);
if (callret != NULL) {
callret->remote = remote;
}
va_end(params);
return callret;
}
TR_ProtoMessage
TR_protoCreateResponse(void * _this, TR_Socket remote, ...)
TR_protoCreateRequest(void * _this, TR_Socket remote, ...)
{
TR_ProtoMessage callret;
va_list params;
va_start(params, remote);
callret = TR_vprotoCreateRequest(_this, remote, &params);
va_end(params);
return callret;
}
TR_ProtoMessage
TR_vprotoCreateResponse(void * _this, TR_Socket remote, va_list * params)
{
TR_ProtoMessage callret;
TR_RETCALL(_this, TR_Protocol, createResponse, callret, &params);
if (callret != NULL) {
callret->remote = remote;
}
va_end(params);
return callret;
}
TR_ProtoMessage
TR_protoCreateResponse(void * _this, TR_Socket remote, ...)
{
TR_ProtoMessage callret;
va_list params;
va_start(params, remote);
callret = TR_vprotoCreateResponse(_this, remote, &params);
va_end(params);
return callret;
}

Loading…
Cancel
Save