Making way for the real Init

This commit is contained in:
Pierre Pronchery 2008-11-09 23:12:31 +00:00
parent 5b797d87ad
commit b00642b971
3 changed files with 18 additions and 8 deletions

View File

@ -219,6 +219,7 @@ AppClient * appclient_new(char const * app)
/* appclient_new_event */
static int _new_connect(AppClient * appclient, char const * app);
static int _connect_addr(String const * service, uint32_t * addr);
AppClient * appclient_new_event(char const * app, Event * event)
{
@ -229,7 +230,7 @@ AppClient * appclient_new_event(char const * app, Event * event)
#endif
if((appclient = object_new(sizeof(AppClient))) == NULL)
return NULL;
if((appclient->interface = appinterface_new("Session")) == NULL)
if((appclient->interface = appinterface_new("Init")) == NULL)
{
object_delete(appclient);
return NULL;
@ -253,7 +254,6 @@ AppClient * appclient_new_event(char const * app, Event * event)
return appclient;
}
static int _connect_addr(String const * service, uint32_t * addr);
static int _new_connect(AppClient * appclient, char const * app)
{
struct sockaddr_in sa;
@ -263,10 +263,10 @@ static int _new_connect(AppClient * appclient, char const * app)
return 1;
sa.sin_family = AF_INET;
sa.sin_port = htons(appinterface_get_port(appclient->interface));
if(_connect_addr("Session", &sa.sin_addr.s_addr) != 0)
if(_connect_addr("Init", &sa.sin_addr.s_addr) != 0)
return 1;
if(connect(appclient->fd, (struct sockaddr *)&sa, sizeof(sa)) != 0)
return error_set_code(1, "%s%s", "Session: ", strerror(errno));
return error_set_code(1, "%s%s", "Init: ", strerror(errno));
#ifdef DEBUG
fprintf(stderr, "DEBUG: connect(%d, %s:%d) => 0\n", appclient->fd,
inet_ntoa(sa.sin_addr), ntohs(sa.sin_port));
@ -277,7 +277,7 @@ static int _new_connect(AppClient * appclient, char const * app)
return error_set_code(1, "%s", _appclient_error_ssl());
SSL_set_connect_state(appclient->ssl);
#endif
if(appclient_call(appclient, &port, "port", app) != 0)
if(appclient_call(appclient, &port, "init_get_session", app) != 0)
return 1;
if(port < 0)
return error_set_code(1, "%s", "Could not obtain remote port");

View File

@ -239,7 +239,7 @@ static void _append_arg(AppInterfaceCallArg * arg, AppInterfaceCallType type,
arg->direction = direction;
arg->size = _aict_size[type];
#ifdef DEBUG
fprintf(stderr, "DEBUG: type %s, direction: %d, size: %d\n",
fprintf(stderr, "DEBUG: type %s, direction: %d, size: %zu\n",
AICTString[type], direction, arg->size);
#endif
}
@ -248,8 +248,14 @@ static int _new_init(AppInterface * ai)
{
int ret = 0;
ret |= _new_append(ai, AICT_UINT16, "init_register", 1, AICT_STRING,
ret |= _new_append(ai, AICT_UINT16, "init_login", 1, AICT_STRING);
ret |= _new_append(ai, AICT_UINT16, "init_logout", 0);
ret |= _new_append(ai, AICT_UINT16, "init_register", 2, AICT_STRING,
AICT_INT16);
ret |= _new_append(ai, AICT_UINT16, "init_get_session", 1, AICT_STRING);
ret |= _new_append(ai, AICT_UINT16, "init_get_profile", 1,
AICT_STRING | AICD_OUT);
ret |= _new_append(ai, AICT_UINT16, "init_set_profile", 1, AICT_STRING);
return ret;
}
@ -257,6 +263,7 @@ static int _new_session(AppInterface * ai)
{
int ret = 0;
/* FIXME re-factor: session_register() etc */
ret |= _new_append(ai, AICT_UINT16, "port", 1, AICT_STRING);
ret |= _new_append(ai, AICT_VOID, "list", 0);
ret |= _new_append(ai, AICT_BOOL, "start", 1, AICT_STRING);

View File

@ -129,7 +129,7 @@ static AppServerClient * _appserverclient_new(int fd, uint32_t addr,
{
AppServerClient * asc;
if((asc = object_new(sizeof(AppServerClient))) == NULL)
if((asc = object_new(sizeof(*asc))) == NULL)
return NULL;
asc->state = ASCS_NEW;
asc->addr = addr;
@ -225,6 +225,9 @@ static int _appserver_accept(int fd, AppServer * appserver)
#endif
)) == NULL)
{
#ifdef DEBUG
error_print("DEBUG");
#endif
close(newfd);
return 0;
}