int main() { Sqrl_Uri *uri; uri = sqrl_uri_parse( "sqrl://sqrlid.com/login?x=6&nut=blah&sfn=U1FSTGlk" ); printuri( uri ); NUMEQ( uri->scheme, SQRL_SCHEME_SQRL ); STREQ( uri->host, "sqrlid.com/login" ) STREQ( uri->challenge, "sqrl://sqrlid.com/login?x=6&nut=blah&sfn=U1FSTGlk" ) STREQ( uri->url, "https://sqrlid.com/login?x=6&nut=blah&sfn=U1FSTGlk" ) STREQ( uri->prefix, "https://sqrlid.com" ); STREQ( uri->sfn, "SQRLid" ); sqrl_uri_free( uri ); uri = sqrl_uri_parse( "sqrl://sqrlid.com/login?nut=blah&sfn=U1FSTGlk" ); printuri( uri ); NUMEQ( uri->scheme, SQRL_SCHEME_SQRL ); STREQ( uri->host, "sqrlid.com" ); STREQ( uri->challenge, "sqrl://sqrlid.com/login?nut=blah&sfn=U1FSTGlk" ); STREQ( uri->url, "https://sqrlid.com/login?nut=blah&sfn=U1FSTGlk" ); STREQ( uri->prefix, "https://sqrlid.com" ); STREQ( uri->sfn, "SQRLid" ); sqrl_uri_free( uri ); uri = sqrl_uri_parse( "sqrl://sqrlid.com:8080/login?sfn=U1FSTGlk&nut=blah" ); printuri( uri ); NUMEQ( uri->scheme, SQRL_SCHEME_SQRL ); STREQ( uri->host, "sqrlid.com" ); STREQ( uri->challenge, "sqrl://sqrlid.com:8080/login?sfn=U1FSTGlk&nut=blah" ); STREQ( uri->url, "https://sqrlid.com:8080/login?sfn=U1FSTGlk&nut=blah" ); STREQ( uri->prefix, "https://sqrlid.com:8080" ); STREQ( uri->sfn, "SQRLid" ); sqrl_uri_free( uri ); uri = sqrl_uri_parse( "file://test1.sqrl" ); printuri( uri ); NUMEQ( uri->scheme, SQRL_SCHEME_FILE ); STRNULL( uri->host ); STREQ( uri->url, "file://test1.sqrl" ); STREQ( uri->challenge, "test1.sqrl" ); STRNULL( uri->prefix ); STRNULL( uri->sfn ); sqrl_uri_free( uri ); uri = sqrl_uri_parse( "sqrl://sqrlid.com:8080/login?nut=blah" ); if( uri ) { printf( "Accepted SQRL url without SFN!\n" ); sqrl_uri_free( uri ); exit(1); } uri = sqrl_uri_parse( "http://google.com" ); if( uri ) { printf( "Invalid SQRL URL was accepted as valid: http://google.com\n" ); exit(1); } printf( "PASS!\n" ); exit(0); }
int DoLogin( char *user, char *passwd, char *host ) { ios_$id_t logid; login_$opt_set_t opts; status_$t status; error_$string_t subsystem, module, error; short sslen, modlen, errlen; char buf[BUFSIZ]; Debug("DoLogin(): for %s\n", user); login_$set_host(host, strlen(host)); opts = login_$no_prompt_name_sm | login_$no_prompt_pass_sm | login_$addut_sm | login_$chown_tty_sm; Debug("DoLogin(): before calling login_$chk_login()\n"); if ((!login_$chk_login(opts, STRING(user), STRING(passwd), (login_$open_log_p) NULL, STRING(""), &logid, &status)) && (status.all != status_$ok)) { Debug("DoLogin(): login_$chk_login() failed\n"); error_$get_text(status, subsystem, &sslen, module, &modlen, error, &errlen); STRNULL(error, errlen); STRNULL(module, modlen); STRNULL(subsystem, sslen); sprintf(buf,ReadCatalog(MC_LOG_SET,MC_LOG_DOMAIN,MC_DEF_LOG_DOMAIN), error, subsystem, module); LogError (buf); bzero (passwd, strlen(passwd)); return (false); } Debug("DoLogin(): login_$chk_login() succeeded\n"); /* * clear password... */ bzero (passwd, strlen(passwd)); return (true); }
static void toolutil_findBasename(void) { struct { const char *inBuf; const char *expectResult; } testCases[] = { { U_FILE_SEP_STRING "usr" U_FILE_SEP_STRING "bin" U_FILE_SEP_STRING "pkgdata", "pkgdata" }, { U_FILE_SEP_STRING "usr" U_FILE_SEP_STRING "bin" U_FILE_SEP_STRING, "" }, { U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin" U_FILE_ALT_SEP_STRING "pkgdata", "pkgdata" }, { U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin" U_FILE_ALT_SEP_STRING, "" }, }; int32_t count=(sizeof(testCases)/sizeof(testCases[0])); int32_t i; log_verbose("Testing findBaseName()\n"); for(i=0;i<count;i++) { const char *result; const char *input = STRNULL(testCases[i].inBuf); const char *expect = STRNULL(testCases[i].expectResult); log_verbose("Test case [%d/%d]: %s\n", i, count-1, input); result = STRNULL(findBasename(testCases[i].inBuf)); if(result==expect||!strcmp(result,expect)) { log_verbose(" -> %s PASS\n", result); } else { log_err("FAIL: Test case [%d/%d]: %s -> %s but expected %s\n", i, count-1, input, result, expect); } } }
static void journal_ix_log_dump(journal *jh) { journal_ix *jix = (journal_ix*)jh; const u8 *origin; if(jh->zone != NULL) { origin = FQDNNULL(jix->zone->origin); } else { origin = (const u8*)"\012NOT-LINKED"; } log_debug("domain='%{dnsname}' mru=%i file='%s' fd=%i range=%u:%u lpo=%llu", origin, (jix->mru)?1:0, STRNULL(jix->journal_name), jix->fd, jix->first_serial, jix->last_serial, jix->last_page_offset); }
static void toolutil_findDirname(void) { int i; struct { const char *inBuf; int32_t outBufLen; UErrorCode expectStatus; const char *expectResult; } testCases[] = { { U_FILE_SEP_STRING "usr" U_FILE_SEP_STRING "bin" U_FILE_SEP_STRING "pkgdata", 200, U_ZERO_ERROR, U_FILE_SEP_STRING "usr" U_FILE_SEP_STRING "bin", }, { U_FILE_SEP_STRING "usr" U_FILE_SEP_STRING "bin" U_FILE_SEP_STRING "pkgdata", 2, U_BUFFER_OVERFLOW_ERROR, NULL }, { U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin" U_FILE_ALT_SEP_STRING "pkgdata", 200, U_ZERO_ERROR, U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin" }, { U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin" U_FILE_ALT_SEP_STRING "pkgdata", 2, U_BUFFER_OVERFLOW_ERROR, NULL }, { U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin" U_FILE_SEP_STRING "pkgdata", 200, U_ZERO_ERROR, U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin" }, { U_FILE_ALT_SEP_STRING "usr" U_FILE_SEP_STRING "bin" U_FILE_ALT_SEP_STRING "pkgdata", 200, U_ZERO_ERROR, U_FILE_ALT_SEP_STRING "usr" U_FILE_SEP_STRING "bin" }, { U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin" U_FILE_ALT_SEP_STRING "pkgdata", 2, U_BUFFER_OVERFLOW_ERROR, NULL }, { U_FILE_ALT_SEP_STRING "vmlinuz", 200, U_ZERO_ERROR, U_FILE_ALT_SEP_STRING }, { U_FILE_SEP_STRING "vmlinux", 200, U_ZERO_ERROR, U_FILE_SEP_STRING }, { "pkgdata", 0, U_BUFFER_OVERFLOW_ERROR, NULL }, { "pkgdata", 1, U_BUFFER_OVERFLOW_ERROR, NULL }, { "pkgdata", 2, U_ZERO_ERROR, "." }, { "pkgdata", 20, U_ZERO_ERROR, "." } }; int32_t count=(sizeof(testCases)/sizeof(testCases[0])); log_verbose("Testing findDirname()\n"); for(i=0;i<count;i++) { const char *result; const char *input = STRNULL(testCases[i].inBuf); const char *expect = STRNULL(testCases[i].expectResult); UErrorCode status = U_ZERO_ERROR; uprv_memset(toolutil_testBuf, 0x55, TOOLUTIL_TESTBUF_SIZE); log_verbose("Test case [%d/%d]: %s\n", i, count-1, input); result = STRNULL(findDirname(testCases[i].inBuf, toolutil_testBuf, testCases[i].outBufLen, &status)); log_verbose(" -> %s, \n", u_errorName(status)); if(status != testCases[i].expectStatus) { log_verbose("FAIL: Test case [%d/%d]: %s got error code %s but expected %s\n", i, count-1, input, u_errorName(status), u_errorName(testCases[i].expectStatus)); } if(result==expect||!strcmp(result,expect)) { log_verbose(" = -> %s \n", result); } else { log_err("FAIL: Test case [%d/%d]: %s -> %s but expected %s\n", i, count-1, input, result, expect); } } }