/** The whole message must be a multiple of 4 octets. * I'm not sure where this is spelled out, but look at * rfc2408 3.6 Transform Payload. * Note: it talks about 4 BYTE boundaries! * * @param pbs PB Stream */ void close_message(pb_stream *pbs) { size_t padding = pad_up(pbs_offset(pbs), 4); if (padding != 0) (void) out_zero(padding, pbs, "message padding"); close_output_pbs(pbs); }
/** The whole message must be a multiple of 4 octets. * I'm not sure where this is spelled out, but look at * rfc2408 3.6 Transform Payload. * Note: it talks about 4 BYTE boundaries! * * @param pbs PB Stream */ void close_message(pb_stream *pbs, struct state *st) { size_t padding = pad_up(pbs_offset(pbs), 4); if (st && st->st_connection && (st->st_connection->policy & POLICY_IKEPAD) == 0) padding = 0; if (padding != 0) (void) out_zero(padding, pbs, "message padding"); close_output_pbs(pbs); }
//---------------------------------------------------------------------- //---------------------------------------------------------------------- void instr_beg(char str[MAXSTR*2], int mode) { static const char *const addonce[] = { "", "_w", "_quick", "2_quick", "_quick_w" }; init_prompted_output(str, 4); OutMnem(2, addonce[uchar(cmd.wid)]); out_zero(); if ( mode) outcnt = tag_strlen(str ); else { char *ptr = str + (outcnt = tag_remove(str, str, 0)); set_output_ptr(ptr); *ptr = '\0'; } }
//---------------------------------------------------------------------- bool change_line(bool main) { out_zero(); bool overflow = false; if ( g_bufbeg != NULL ) { outcnt = 0; uchar sv = inf.indent; inf.indent = (uchar)curpos; overflow = MakeLine(g_bufbeg, main ? -1 : curpos); inf.indent = sv; init_output_buffer(g_bufbeg, g_bufsize); // for autocomment with call fmtName } return overflow; }
/** The whole message must be a multiple of 4 octets. * I'm not sure where this is spelled out, but look at * rfc2408 3.6 Transform Payload. * Note: it talks about 4 BYTE boundaries! * * @param pbs PB Stream */ void close_message(pb_stream *pbs, struct state *st) { size_t padding = pad_up(pbs_offset(pbs), 4); /* Workaround for overzealous Checkpoint firewal */ if (padding && st && st->st_connection && (st->st_connection->policy & POLICY_NO_IKEPAD)) { DBG(DBG_CONTROLMORE, DBG_log("IKE message padding of %lu bytes skipped by policy", padding)); padding = 0; } if (padding != 0) { DBG(DBG_CONTROLMORE, DBG_log("padding IKE message with %lu bytes", padding)); (void) out_zero(padding, pbs, "message padding"); } else { DBG(DBG_CONTROLMORE, DBG_log("no IKE message padding required")); } close_output_pbs(pbs); }
//---------------------------------------------------------------------- static size_t putLine(void) { color_t color = COLOR_NONE; out_zero(); if ( g_bufbeg != NULL ) { char *p = strrchr(g_bufbeg, COLOR_ON); if ( p != NULL && p[1] && strchr(p+2, COLOR_OFF) == NULL ) // second - PARANOYA { color = (color_t)*(p + 1); out_tagoff(color); } } out_symbol('\\'); if ( change_line(curpos != 0 && !no_prim) ) return 0; curpos = 0; if ( color != COLOR_NONE ) out_tagon(color); ref_pos = get_output_ptr(); return maxpos; }
//---------------------------------------------------------------------- static size_t putLine(void) { register color_t ntag = _CURCOL; out_zero(); { register char *p = strrchr(bufbeg, COLOR_ON); if ( p && p[1] && !strchr(p+2, COLOR_OFF) ) { // second - PARANOYA ntag = (color_t)*(p + 1); out_tagoff(ntag); } } out_symbol('\\'); if ( change_line(curpos != 0 && !no_prim)) return(0 ); curpos = 0; #ifdef __BORLANDC__ #if _CURCOL != 0 #error #endif #endif if ( ntag) out_tagon(ntag ); ref_pos = get_output_ptr(); return(maxpos); }