aboutsummaryrefslogtreecommitdiffstats
path: root/util/scan/dvb-t/de-Hamburg (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2013-10-12Drop dvb-apps.bug-presubj; scan table bug reports should be reported against ↵Jonathan McCrohan2-7/+2
dtv-scan-tables package instead
2013-09-25d/patches/: Drop uk-CrystalPalace.diff; superseded by ↵Jonathan McCrohan3-29/+7
dtv-scan-tables_0+git20130920.f61d5ec-1
2013-09-22Releasedebian/1.1.1+rev1500-1etobi1-2/+2
2013-09-19Add a manpage for lsdvbetobi3-0/+11
2013-09-19Use debhelper 9 to make the hardening options from dpkg-buildflags being usedetobi5-2/+55
2013-09-19d/control: Standards-Version: 3.9.4etobi2-1/+2
2013-09-19Build-depend on linux-libc-dev (>= 3.3) (needs DVB API Version >= 5.5)etobi4-6/+11
2013-09-19Forgot to add (Closes: #702868) to Git changelog entryJonathan McCrohan1-1/+1
2013-09-19d/control: Add depends on dtv-scan-tables which now provides the initial ↵Jonathan McCrohan2-0/+3
scan files previously provided by dvb-apps
2013-09-19d/patches/: Add 02_dtv-scan-tables.patch to remove scan tables from dvb-apps ↵Jonathan McCrohan3-0/+31
package
2013-09-17d/control: Update Vcs tags to reflect move SVN to GitJonathan McCrohan2-2/+3
2013-09-17d/control: Drop obsolete DM-Upload-AllowedJonathan McCrohan2-1/+1
2013-09-17d/control: Add myself to UploadersJonathan McCrohan2-1/+3
2013-09-17New upstream release (1.1.1+rev1500)Jonathan McCrohan1-0/+6
2013-09-17Imported Upstream version 1.1.1+rev1500upstream/1.1.1+rev1500upstreamJonathan McCrohan56-356/+914
2013-09-03Imported Debian patch 1.1.1+rev1483-2debian/1.1.1+rev1483-2Tobias Grimm4-2/+9
2013-09-03Imported Upstream version 1.1.1+rev1483upstream/1.1.1+rev1483etobi101-1596/+1137
2013-09-03Imported Debian patch 1.1.1+rev1457-4debian/1.1.1+rev1457-4Mark Purcell4-1/+11
2013-09-03Imported Debian patch 1.1.1+rev1457-3debian/1.1.1+rev1457-3Tobias Grimm4-3/+11
2013-09-03Imported Debian patch 1.1.1+rev1457-2debian/1.1.1+rev1457-2Mark Purcell6-6/+1086
2013-09-03Imported Upstream version 1.1.1+rev1457upstream/1.1.1+rev1457etobi373-3363/+3502
2013-09-03Imported Debian patch 1.1.1+rev1355-1.1debian/1.1.1+rev1355-1.1Simon Paillard3-0/+215
2013-09-03Imported Upstream version 1.1.1+rev1355upstream/1.1.1+rev1355etobi210-637/+35932
2013-09-03Imported Upstream version 1.1.1+rev1273upstream/1.1.1+rev1273etobi154-853/+1524
2013-09-03Imported Debian patch 1.1.1+rev1207-5debian/1.1.1+rev1207-5Tobias Grimm5-9/+74
2013-09-03Imported Debian patch 1.1.1+rev1207-4debian/1.1.1+rev1207-4Mark Purcell2-2/+12
2013-09-03Imported Debian patch 1.1.1+rev1207-3debian/1.1.1+rev1207-3Mark Purcell2-3/+20
2013-09-03Imported Debian patch 1.1.1+rev1207-2debian/1.1.1+rev1207-2Mark Purcell2-1/+15
2013-09-03Imported Upstream version 1.1.1+rev1207upstream/1.1.1+rev1207etobi1282-2474/+68297
2013-09-03Imported Debian patch 1.1.1-3debian/1.1.1-3Debian VDR Team6-770/+7062
2013-09-03Imported Debian patch 1.1.1-2debian/1.1.1-2Thomas Schmidt4-1/+27
2013-09-03Imported Upstream version 1.1.1upstream/1.1.1etobi30-172/+2229
2013-09-03Imported Debian patch 1.1.0-11debian/1.1.0-11Debian VDR Team5-3/+83
2013-09-03Imported Debian patch 1.1.0-9debian/1.1.0-9Thomas Schmidt3-0/+33
2013-09-03Imported Debian patch 1.1.0-8debian/1.1.0-8Debian VDR Team9-560/+1531
2013-09-03Imported Debian patch 1.1.0-7debian/1.1.0-7Debian VDR Team4-324/+553
2013-09-03Imported Debian patch 1.1.0-6debian/1.1.0-6Debian VDR Team6-8/+21
2013-09-03Imported Debian patch 1.1.0-5debian/1.1.0-5Debian VDR Team15-0/+2186
n">buf[1] = (TAG_AUTH_RESP >> 8) & 0xFF; buf[2] = TAG_AUTH_RESP & 0xFF; // encode the length field int length_field_len; if ((length_field_len = asn_1_encode(auth_data_length + 2, buf + 3, 3)) < 0) { return -1; } // the phase_id buf[3 + length_field_len] = auth_protocol_id >> 8; buf[3 + length_field_len + 1] = auth_protocol_id; // build the iovecs struct iovec iov[2]; iov[0].iov_base = buf; iov[0].iov_len = 3 + length_field_len + 2; iov[1].iov_base = auth_data; iov[1].iov_len = auth_data_length; // sendit return auth->funcs->send_datav(auth->funcs->arg, session_number, iov, 2); } int en50221_app_auth_message(struct en50221_app_auth *auth, uint8_t slot_id, uint16_t session_number, uint32_t resource_id, uint8_t * data, uint32_t data_length) { (void) resource_id; // get the tag if (data_length < 3) { print(LOG_LEVEL, ERROR, 1, "Received short data\n"); return -1; } uint32_t tag = (data[0] << 16) | (data[1] << 8) | data[2]; switch (tag) { case TAG_AUTH_REQ: return en50221_app_auth_parse_request(auth, slot_id, session_number, data + 3, data_length - 3); } print(LOG_LEVEL, ERROR, 1, "Received unexpected tag %x\n", tag); return -1; } static int en50221_app_auth_parse_request(struct en50221_app_auth *auth, uint8_t slot_id, uint16_t session_number, uint8_t * data, uint32_t data_length) { // first of all, decode the length field uint16_t asn_data_length; int length_field_len; if ((length_field_len = asn_1_decode(&asn_data_length, data, data_length)) < 0) { print(LOG_LEVEL, ERROR, 1, "ASN.1 decode error\n"); return -1; } // check it if (asn_data_length < 2) { print(LOG_LEVEL, ERROR, 1, "Received short data\n"); return -1; } if (asn_data_length > (data_length - length_field_len)) { print(LOG_LEVEL, ERROR, 1, "Received short data\n"); return -1; } uint8_t *auth_data = data + length_field_len; // process it uint16_t auth_protocol_id = (auth_data[0] << 8) | auth_data[1]; // tell the app pthread_mutex_lock(&auth->lock); en50221_app_auth_request_callback cb = auth->callback; void *cb_arg = auth->callback_arg; pthread_mutex_unlock(&auth->lock); if (cb) { return cb(cb_arg, slot_id, session_number, auth_protocol_id, auth_data + 2, asn_data_length - 2); } return 0; }