Added session to naming callback

This commit is contained in:
mpc
2004-12-02 23:05:30 +00:00
committed by zzz
parent 61e5f190a6
commit 33bfa94229
5 changed files with 18 additions and 13 deletions

View File

@@ -1,6 +1,7 @@
/* vi:set ts=4: */
v1.30
* Added session to sam_namingback()
* Removed stdint.h dependency
* Improved WIRETAP to do more logging
* Added "pinger.sh" shell script example for using i2p-ping

View File

@@ -60,7 +60,8 @@ static void databack(sam_sess_t *session, sam_sid_t stream_id, void *data,
size_t size);
static void diedback(sam_sess_t *session);
static void logback(char *s);
static void namingback(char *name, sam_pubkey_t pubkey, samerr_t result);
static void namingback(sam_sess_t *session, char *name, sam_pubkey_t pubkey,
samerr_t result);
static void statusback(sam_sess_t *session, sam_sid_t stream_id,
samerr_t result);
@@ -103,7 +104,7 @@ int main(int argc, char *argv[])
quiet = true;
break;
case 'v': /* version */
puts("$Id: i2p-ping.c,v 1.5 2004/09/24 16:08:00 mpc Exp $");
puts("$Id: i2p-ping.c,v 1.6 2004/12/02 17:54:23 mpc Exp $");
puts("Copyright (c) 2004, Matthew P. Cashdollar <mpc@innographx.com>");
break;
case '?':
@@ -242,7 +243,8 @@ static void logback(char *s)
* This is really hackish, but we know that we are only doing one lookup, so
* what the hell
*/
static void namingback(char *name, sam_pubkey_t pubkey, samerr_t result)
static void namingback(sam_sess_t *session, char *name, sam_pubkey_t pubkey,
samerr_t result)
{
if (result != SAM_OK) {
fprintf(stderr, "Naming lookup failed: %s\n", sam_strerror(result));

View File

@@ -47,7 +47,8 @@ static void dgramback(sam_sess_t *session, sam_pubkey_t dest, void *data,
size_t size);
static void diedback(sam_sess_t *session);
static void logback(char *s);
static void namingback(char *name, sam_pubkey_t pubkey, samerr_t result);
static void namingback(sam_sess_t *session, char *name, sam_pubkey_t pubkey,
samerr_t result);
/*
* Just some ugly global variables. Don't do this in your program.
@@ -155,7 +156,6 @@ static void dgramback(sam_sess_t *session, sam_pubkey_t dest, void *data,
static void diedback(sam_sess_t *session)
{
fprintf(stderr, "Lost SAM connection!\n");
sam_session_free(&session);
exit(1);
}
@@ -172,11 +172,11 @@ static void logback(char *s)
* This is really hackish, but we know that we are only doing one lookup, so
* what the hell
*/
static void namingback(char *name, sam_pubkey_t pubkey, samerr_t result)
static void namingback(sam_sess_t *session, char *name, sam_pubkey_t pubkey,
samerr_t result)
{
if (result != SAM_OK) {
fprintf(stderr, "Naming lookup failed: %s\n", sam_strerror(result));
/* high quality code would do a sam_session_free() here */
exit(1);
}
memcpy(dest, pubkey, SAM_PUBKEY_LEN);

View File

@@ -125,7 +125,8 @@ const char *sam_strerror(samerr_t code);
/* SAM controls - callbacks */
void (*sam_diedback)(sam_sess_t *session);
void (*sam_logback)(char *str);
void (*sam_namingback)(char *name, sam_pubkey_t pubkey, samerr_t result);
void (*sam_namingback)(sam_sess_t *session, char *name,
sam_pubkey_t pubkey, samerr_t result);
/* Stream commands */
void sam_stream_close(sam_sess_t *session, sam_sid_t stream_id);

View File

@@ -79,7 +79,8 @@ void (*sam_diedback)(sam_sess_t *session) = NULL;
void (*sam_logback)(char *str) = NULL;
/* naming lookup reply - `pubkey' will be NULL if `result' isn't SAM_OK */
void (*sam_namingback)(char *name, sam_pubkey_t pubkey, samerr_t result) = NULL;
void (*sam_namingback)(sam_sess_t *session, char *name, sam_pubkey_t pubkey,
samerr_t result) = NULL;
/* our connection to a peer has completed */
void (*sam_statusback)(sam_sess_t *session, sam_sid_t stream_id,
@@ -386,7 +387,7 @@ static void sam_parse(sam_sess_t *session, char *s)
q++;
strlcpy(name, p, sizeof name);
strlcpy(pubkey, q, sizeof pubkey);
sam_namingback(name, pubkey, SAM_OK);
sam_namingback(session, name, pubkey, SAM_OK);
} else if (strncmp(s, SAM_NAMING_REPLY_IK,
strlen(SAM_NAMING_REPLY_IK)) == 0) {
@@ -394,7 +395,7 @@ static void sam_parse(sam_sess_t *session, char *s)
if (q != NULL)
*q = '\0';
strlcpy(name, p, sizeof name);
sam_namingback(name, NULL, SAM_INVALID_KEY);
sam_namingback(session, name, NULL, SAM_INVALID_KEY);
} else if (strncmp(s, SAM_NAMING_REPLY_KNF,
strlen(SAM_NAMING_REPLY_KNF)) == 0) {
@@ -402,14 +403,14 @@ static void sam_parse(sam_sess_t *session, char *s)
if (q != NULL)
*q = '\0';
strlcpy(name, p, sizeof name);
sam_namingback(name, NULL, SAM_KEY_NOT_FOUND);
sam_namingback(session, name, NULL, SAM_KEY_NOT_FOUND);
} else {
q = strchr(p, ' '); /* ' 'MES.. (optional) */
if (q != NULL)
*q = '\0';
strlcpy(name, p, sizeof name);
sam_namingback(name, NULL, SAM_UNKNOWN);
sam_namingback(session, name, NULL, SAM_UNKNOWN);
}
return;