Changeset c055502 in mod_gnutls for src/gnutls_cache.c
- Timestamp:
- Dec 9, 2007, 6:12:23 AM (15 years ago)
- Branches:
- asyncio, debian/master, debian/stretch-backports, jessie-backports, master, msva, proxy-ticket, upstream
- Children:
- c223c85
- Parents:
- ae4a2b0
- git-author:
- Nikos Mavrogiannopoulos <nmav@…> (12/09/07 06:12:23)
- git-committer:
- Nokis Mavrogiannopoulos <nmav@…> (12/09/07 06:12:23)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/gnutls_cache.c
rae4a2b0 rc055502 35 35 36 36 #define MC_TAG "mod_gnutls:" 37 #define MC_TAG_LEN \ 38 (sizeof(MC_TAG)) 37 #define MC_TAG_LEN sizeof(MC_TAG) 39 38 #define STR_SESSION_LEN (GNUTLS_SESSION_ID_STRING_LEN + MC_TAG_LEN) 40 39 41 #if 0 42 static char *gnutls_session_id2sz(unsigned char *id, int idlen, 40 char *mgs_session_id2sz(unsigned char *id, int idlen, 43 41 char *str, int strsize) 44 42 { 45 43 char *cp; 46 44 int n; 47 48 cp = apr_cpystrn(str, MC_TAG, MC_TAG_LEN);45 46 cp = str; 49 47 for (n = 0; n < idlen && n < GNUTLS_MAX_SESSION_ID; n++) { 50 48 apr_snprintf(cp, strsize - (cp-str), "%02X", id[n]); … … 54 52 return str; 55 53 } 56 #endif 54 55 56 /* Name the Session ID as: 57 * IP:port.SessionID 58 * to disallow resuming sessions on different servers 59 */ 60 static int mgs_session_id2dbm(conn_rec* c, unsigned char *id, int idlen, 61 apr_datum_t* dbmkey) 62 { 63 char buf[STR_SESSION_LEN]; 64 char *sz; 65 66 sz = mgs_session_id2sz(id, idlen, buf, sizeof(buf)); 67 if (sz == NULL) 68 return -1; 69 70 dbmkey->dptr = apr_psprintf(c->pool, "%s:%d.%s", c->local_ip, c->base_server->port, sz); 71 dbmkey->dsize = strlen( dbmkey->dptr); 72 73 return 0; 74 } 57 75 58 76 #define CTIME "%b %d %k:%M:%S %Y %Z" … … 71 89 } 72 90 73 char *mgs_session_id2sz(unsigned char *id, int idlen,74 char *str, int strsize)75 {76 char *cp;77 int n;78 79 cp = str;80 for (n = 0; n < idlen && n < GNUTLS_MAX_SESSION_ID; n++) {81 apr_snprintf(cp, strsize - (cp-str), "%02X", id[n]);82 cp += 2;83 }84 *cp = '\0';85 return str;86 }87 88 89 91 #if HAVE_APR_MEMCACHE 92 /* Name the Session ID as: 93 * IP:port.SessionID 94 * to disallow resuming sessions on different servers 95 */ 96 static char* mgs_session_id2mc(conn_rec* c, unsigned char *id, int idlen) 97 { 98 char buf[STR_SESSION_LEN]; 99 char *sz; 100 101 sz = mgs_session_id2sz(id, idlen, buf, sizeof(buf)); 102 if (sz == NULL) 103 return NULL; 104 105 return apr_psprintf(c->pool, MC_TAG"%s:%d.%s", c->local_ip, c->base_server->port, sz); 106 } 90 107 91 108 /** … … 185 202 apr_status_t rv = APR_SUCCESS; 186 203 mgs_handle_t *ctxt = baton; 187 char buf[STR_SESSION_LEN];188 204 char* strkey = NULL; 189 205 apr_uint32_t timeout; 190 206 191 strkey = gnutls_session_id2sz(key.data, key.size, buf, sizeof(buf));207 strkey = mgs_session_id2mc(ctxt->c, key.data, key.size); 192 208 if(!strkey) 193 209 return -1; … … 212 228 apr_status_t rv = APR_SUCCESS; 213 229 mgs_handle_t *ctxt = baton; 214 char buf[STR_SESSION_LEN];215 230 char* strkey = NULL; 216 231 char* value; … … 218 233 gnutls_datum_t data = { NULL, 0 }; 219 234 220 strkey = gnutls_session_id2sz(key.data, key.size, buf, sizeof(buf));235 strkey = mgs_session_id2mc(ctxt->c, key.data, key.size); 221 236 if (!strkey) { 222 237 return data; … … 253 268 apr_status_t rv = APR_SUCCESS; 254 269 mgs_handle_t *ctxt = baton; 255 char buf[STR_SESSION_LEN];256 270 char* strkey = NULL; 257 271 258 strkey = gnutls_session_id2sz(key.data, key.size, buf, sizeof(buf));272 strkey = mgs_session_id2mc(ctxt->c, key.data, key.size); 259 273 if(!strkey) 260 274 return -1; … … 367 381 apr_status_t rv; 368 382 369 dbmkey.dptr = (void*)key.data;370 dbmkey.dsize = key.size;383 if (mgs_session_id2dbm(ctxt->c, key.data, key.size, &dbmkey) < 0) 384 return data; 371 385 372 386 rv = apr_dbm_open(&dbm, ctxt->sc->cache_config, … … 414 428 apr_status_t rv; 415 429 apr_time_t expiry; 416 417 dbmkey.dptr = (char *)key.data;418 dbmkey.dsize = key.size;430 431 if (mgs_session_id2dbm(ctxt->c, key.data, key.size, &dbmkey) < 0) 432 return -1; 419 433 420 434 /* create DBM value */ … … 468 482 mgs_handle_t *ctxt = baton; 469 483 apr_status_t rv; 470 471 dbmkey.dptr = (char *)key.data;472 dbmkey.dsize = key.size;484 485 if (mgs_session_id2dbm(ctxt->c, key.data, key.size, &dbmkey) < 0) 486 return -1; 473 487 474 488 rv = apr_dbm_open(&dbm, ctxt->sc->cache_config,
Note: See TracChangeset
for help on using the changeset viewer.