int SLNSubmissionCreateQuick(SLNSessionRef const session, strarg_t const knownURI, strarg_t const type, ssize_t (*read)(void *, byte_t const **), void *const context, SLNSubmissionRef *const out) { int rc = SLNSubmissionCreate(session, knownURI, type, out); if(rc < 0) return rc; rc = SLNSubmissionWriteFrom(*out, read, context); if(rc < 0) SLNSubmissionFree(out); return rc; }
int SLNSubmissionCreateQuick(SLNSessionRef const session, strarg_t const knownURI, strarg_t const type, ssize_t (*read)(void *, byte_t const **), void *const context, SLNSubmissionRef *const out) { assert(out); SLNSubmissionRef sub = NULL; int rc = SLNSubmissionCreate(session, knownURI, &sub); if(rc < 0) return rc; rc = SLNSubmissionSetType(sub, type); if(rc < 0) goto cleanup; rc = SLNSubmissionWriteFrom(sub, read, context); if(rc < 0) goto cleanup; *out = sub; sub = NULL; cleanup: SLNSubmissionFree(&sub); return rc; }