Author: arekm Date: Wed Jul 16 18:21:02 2008 GMT Module: SOURCES Tag: HEAD ---- Log message: - update; small fixes
---- Files affected: SOURCES: libpri-bristuff-bristuff.patch (1.1 -> 1.2) ---- Diffs: ================================================================ Index: SOURCES/libpri-bristuff-bristuff.patch diff -u SOURCES/libpri-bristuff-bristuff.patch:1.1 SOURCES/libpri-bristuff-bristuff.patch:1.2 --- SOURCES/libpri-bristuff-bristuff.patch:1.1 Mon Feb 11 09:45:40 2008 +++ SOURCES/libpri-bristuff-bristuff.patch Wed Jul 16 20:20:56 2008 @@ -2,17 +2,17 @@ ## bristuff.dpatch by Tzafrir Cohen <[EMAIL PROTECTED]> ## ## All lines beginning with `## DP:' are a description of the patch. -## DP: The libpri part of bristuff, version bristuff-0.4.0-test4 +## DP: The libpri part of bristuff, version bristuff-0.4.0-RC1 ## DP: http://www.junghanns.net/en/download.html ## DP: ## DP: newer versions: replace the contets of the patch file literally. -## DP: The remove Makefile and the strange changes this libpri.patch makes to -## DP: copyright statements. +## DP: Watch out for Makefile changes! @DPATCH@ -diff -urN libpri-1.4.1.orig/libpri.h libpri-1.4.1/libpri.h ---- libpri-1.4.1.orig/libpri.h 2006-04-27 18:09:11.000000000 +0200 -+++ libpri-1.4.1/libpri.h 2007-07-11 14:25:15.000000000 +0200 +Index: libpri-1.4.3/libpri.h +=================================================================== +--- libpri-1.4.3.orig/libpri.h ++++ libpri-1.4.3/libpri.h @@ -5,6 +5,8 @@ * * Copyright (C) 2001, Linux Support Services, Inc. @@ -30,9 +30,9 @@ +#define PRI_NETWORK 1 /* PTP modes, default for PRI */ #define PRI_CPE 2 +#define BRI_NETWORK_PTMP 3 /* PTMP modes, default for BRI */ -+#define BRI_CPE_PTMP 4 ++#define BRI_CPE_PTMP 4 +#define BRI_NETWORK 5 /* PTP modes */ -+#define BRI_CPE 6 ++#define BRI_CPE 6 /* Debugging */ #define PRI_DEBUG_Q921_RAW (1 << 0) /* Show raw HDLC frames */ @@ -67,7 +67,7 @@ } pri_event_generic; typedef struct pri_event_error { -@@ -275,18 +293,19 @@ +@@ -275,18 +293,19 @@ typedef struct pri_event_ringing { int cref; int progress; int progressmask; @@ -89,7 +89,7 @@ } pri_event_answer; typedef struct pri_event_facname { -@@ -304,32 +323,37 @@ +@@ -304,32 +323,37 @@ typedef struct pri_event_ring { int e; int channel; /* Channel requested */ int callingpres; /* Presentation of Calling CallerID */ @@ -136,7 +136,7 @@ } pri_event_ring; typedef struct pri_event_hangup { -@@ -337,6 +361,8 @@ +@@ -337,6 +361,8 @@ typedef struct pri_event_hangup { int channel; /* Channel requested */ int cause; int cref; @@ -145,7 +145,7 @@ q931_call *call; /* Opaque call pointer */ long aoc_units; /* Advise of Charge number of charged units */ char useruserinfo[260]; /* User->User info */ -@@ -377,20 +403,80 @@ +@@ -377,12 +403,67 @@ typedef struct pri_event_keypad_digit { char digits[64]; } pri_event_keypad_digit; @@ -196,8 +196,8 @@ + +typedef struct pri_event_display { + int e; -+ int channel; -+ int cref; ++ int channel; ++ int cref; + q931_call *call; + char text[256]; +} pri_event_display; @@ -213,8 +213,7 @@ pri_event_ring ring; /* Ring */ pri_event_hangup hangup; /* Hang up */ pri_event_ringing ringing; /* Ringing */ - pri_event_answer answer; /* Answer */ - pri_event_restart_ack restartack; /* Restart Acknowledge */ +@@ -391,6 +472,11 @@ typedef union { pri_event_proceeding proceeding; /* Call proceeding & Progress */ pri_event_setup_ack setup_ack; /* SETUP_ACKNOWLEDGE structure */ pri_event_notify notify; /* Notification */ @@ -226,7 +225,7 @@ pri_event_keypad_digit digit; /* Digits that come during a call */ } pri_event; -@@ -405,7 +491,9 @@ +@@ -405,7 +491,9 @@ typedef int (*pri_io_cb)(struct pri *pri channel operating in HDLC mode with FCS computed by the fd's driver. Also it must be NON-BLOCKING! Frames received on the fd should include FCS. Nodetype must be one of PRI_NETWORK or PRI_CPE. switchtype should be PRI_SWITCH_* */ @@ -237,7 +236,7 @@ /* Create D-channel just as above with user defined I/O callbacks and data */ extern struct pri *pri_new_cb(int fd, int nodetype, int switchtype, pri_io_cb io_read, pri_io_cb io_write, void *userdata); -@@ -429,6 +517,9 @@ +@@ -429,6 +517,9 @@ extern int pri_get_debug(struct pri *pri /* Enable transmission support of Facility IEs on the pri */ extern void pri_facility_enable(struct pri *pri); @@ -247,7 +246,7 @@ /* Run PRI on the given D-channel, taking care of any events that need to be handled. If block is set, it will block until an event occurs which needs to be handled */ -@@ -469,6 +560,12 @@ +@@ -469,6 +560,12 @@ extern int pri_information(struct pri *p /* Send a keypad facility string of digits */ extern int pri_keypad_facility(struct pri *pri, q931_call *call, char *digits); @@ -260,7 +259,7 @@ /* Answer the incomplete(call without called number) call on the given channel. Set non-isdn to non-zero if you are not connecting to ISDN equipment */ extern int pri_need_more_info(struct pri *pri, q931_call *call, int channel, int nonisdn); -@@ -477,6 +574,35 @@ +@@ -477,6 +574,35 @@ extern int pri_need_more_info(struct pri Set non-isdn to non-zero if you are not connecting to ISDN equipment */ extern int pri_answer(struct pri *pri, q931_call *call, int channel, int nonisdn); @@ -296,7 +295,7 @@ /* Set CRV reference for GR-303 calls */ -@@ -485,14 +611,14 @@ +@@ -485,14 +611,14 @@ extern int pri_answer(struct pri *pri, q /* backwards compatibility for those who don't use asterisk with libpri */ #define pri_release(a,b,c) \ @@ -314,7 +313,7 @@ #define PRI_DESTROYCALL extern void pri_destroycall(struct pri *pri, q931_call *call); -@@ -525,7 +651,7 @@ +@@ -525,7 +651,7 @@ extern struct pri_sr *pri_sr_new(void); extern void pri_sr_free(struct pri_sr *sr); extern int pri_sr_set_channel(struct pri_sr *sr, int channel, int exclusive, int nonisdn); @@ -323,7 +322,7 @@ extern int pri_sr_set_called(struct pri_sr *sr, char *called, int calledplan, int complete); extern int pri_sr_set_caller(struct pri_sr *sr, char *caller, char *callername, int callerplan, int callerpres); extern int pri_sr_set_redirecting(struct pri_sr *sr, char *num, int plan, int pres, int reason); -@@ -553,8 +679,8 @@ +@@ -553,8 +679,8 @@ int pri_channel_bridge(q931_call *call1, /* Override message and error stuff */ #define PRI_NEW_SET_API @@ -334,9 +333,10 @@ /* Set overlap mode */ #define PRI_SET_OVERLAPDIAL -diff -urN libpri-1.4.1.orig/Makefile libpri-1.4.1/Makefile ---- libpri-1.4.1.orig/Makefile 2006-12-30 20:17:34.000000000 +0100 -+++ libpri-1.4.1/Makefile 2007-07-11 14:25:15.000000000 +0200 +Index: libpri-1.4.3/Makefile +=================================================================== +--- libpri-1.4.3.orig/Makefile ++++ libpri-1.4.3/Makefile @@ -27,6 +27,16 @@ # Uncomment if you want libpri to count number of Q921/Q931 sent/received #LIBPRI_COUNTERS=-DLIBPRI_COUNTERS @@ -354,7 +354,7 @@ CC=gcc OSARCH=$(shell uname -s) -@@ -36,7 +46,7 @@ +@@ -36,7 +46,7 @@ STATIC_LIBRARY=libpri.a DYNAMIC_LIBRARY=libpri.so.1.0 STATIC_OBJS=copy_string.o pri.o q921.o prisched.o q931.o pri_facility.o DYNAMIC_OBJS=copy_string.lo pri.lo q921.lo prisched.lo q931.lo pri_facility.lo @@ -363,9 +363,10 @@ INSTALL_PREFIX=$(DESTDIR) INSTALL_BASE=/usr SOFLAGS = -Wl,-hlibpri.so.1.0 -diff -urN libpri-1.4.1.orig/pri.c libpri-1.4.1/pri.c ---- libpri-1.4.1.orig/pri.c 2006-07-06 23:11:37.000000000 +0200 -+++ libpri-1.4.1/pri.c 2007-07-11 14:25:15.000000000 +0200 +Index: libpri-1.4.3/pri.c +=================================================================== +--- libpri-1.4.3.orig/pri.c ++++ libpri-1.4.3/pri.c @@ -1,24 +1,14 @@ /* * libpri: An implementation of Primary Rate ISDN @@ -397,7 +398,7 @@ * */ -@@ -48,6 +38,14 @@ +@@ -48,6 +38,14 @@ char *pri_node2str(int node) return "Network"; case PRI_CPE: return "CPE"; @@ -412,7 +413,7 @@ default: return "Invalid value"; } -@@ -187,7 +185,7 @@ +@@ -187,7 +185,7 @@ static int __pri_write(struct pri *pri, return res; } @@ -421,7 +422,7 @@ { struct pri *p; p = malloc(sizeof(struct pri)); -@@ -207,6 +205,8 @@ +@@ -207,6 +205,8 @@ static struct pri *__pri_new(int fd, int p->master = master; p->callpool = &p->localpool; pri_default_timers(p, switchtype); @@ -430,7 +431,7 @@ #ifdef LIBPRI_COUNTERS p->q921_rxcount = 0; p->q921_txcount = 0; -@@ -217,7 +217,7 @@ +@@ -217,7 +217,7 @@ static struct pri *__pri_new(int fd, int p->protodisc = GR303_PROTOCOL_DISCRIMINATOR; p->sapi = Q921_SAPI_GR303_EOC; p->tei = Q921_TEI_GR303_EOC_OPS; @@ -439,7 +440,7 @@ if (!p->subchannel) { free(p); p = NULL; -@@ -226,7 +226,7 @@ +@@ -226,7 +226,7 @@ static struct pri *__pri_new(int fd, int p->protodisc = GR303_PROTOCOL_DISCRIMINATOR; p->sapi = Q921_SAPI_GR303_TMC_CALLPROC; p->tei = Q921_TEI_GR303_TMC_CALLPROC; @@ -448,7 +449,7 @@ if (!p->subchannel) { free(p); p = NULL; -@@ -242,7 +242,7 @@ +@@ -242,7 +242,7 @@ static struct pri *__pri_new(int fd, int } /* Start Q.921 layer, Wait if we're the network */ if (p) @@ -457,14 +458,14 @@ } return p; } -@@ -262,15 +262,16 @@ +@@ -262,15 +262,16 @@ int pri_restart(struct pri *pri) { /* Restart Q.921 layer */ if (pri) { - q921_reset(pri); - q921_start(pri, pri->localtype == PRI_CPE); +// XXX q921_reset(pri); -+// q921_start(pri, pri->localtype == PRI_CPE); ++// q921_start(pri, pri->localtype == PRI_CPE); } return 0; } @@ -478,7 +479,7 @@ } struct pri *pri_new_cb(int fd, int nodetype, int switchtype, pri_io_cb io_read, pri_io_cb io_write, void *userdata) -@@ -279,7 +280,7 @@ +@@ -279,7 +280,7 @@ struct pri *pri_new_cb(int fd, int nodet io_read = __pri_read; if (!io_write) io_write = __pri_write; @@ -487,7 +488,7 @@ } void *pri_get_userdata(struct pri *pri) -@@ -443,6 +444,15 @@ +@@ -443,6 +444,15 @@ void pri_facility_enable(struct pri *pri return; } @@ -503,7 +504,7 @@ int pri_acknowledge(struct pri *pri, q931_call *call, int channel, int info) { if (!pri || !call) -@@ -486,6 +496,21 @@ +@@ -486,6 +496,21 @@ int pri_notify(struct pri *pri, q931_cal return q931_notify(pri, call, channel, info); } @@ -525,7 +526,7 @@ void pri_destroycall(struct pri *pri, q931_call *call) { if (pri && call) -@@ -507,6 +532,83 @@ +@@ -507,6 +532,83 @@ int pri_answer(struct pri *pri, q931_cal return q931_connect(pri, call, channel, nonisdn); } @@ -609,8 +610,8 @@ #if 0 /* deprecated routines, use pri_hangup */ int pri_release(struct pri *pri, q931_call *call, int cause) -@@ -547,14 +649,35 @@ - return -1; +@@ -561,14 +663,35 @@ int pri_channel_bridge(q931_call *call1, + } } -int pri_hangup(struct pri *pri, q931_call *call, int cause) @@ -631,7 +632,7 @@ + if (aocunits > -1) { + call->aoc_units = aocunits; + } -+ ++ + if (pri->localtype == BRI_NETWORK_PTMP) { + res = q921_hangup(pri, call, 127); + if (res) { @@ -647,7 +648,7 @@ } int pri_reset(struct pri *pri, int channel) -@@ -694,15 +817,15 @@ +@@ -708,15 +831,15 @@ int pri_call(struct pri *pri, q931_call return q931_setup(pri, c, &req); } @@ -667,7 +668,7 @@ { __pri_error = func; } -@@ -714,10 +837,14 @@ +@@ -728,10 +851,14 @@ void pri_message(struct pri *pri, char * va_start(ap, fmt); vsnprintf(tmp, sizeof(tmp), fmt, ap); va_end(ap); @@ -686,7 +687,7 @@ } void pri_error(struct pri *pri, char *fmt, ...) -@@ -727,10 +854,14 @@ +@@ -741,10 +868,14 @@ void pri_error(struct pri *pri, char *fm va_start(ap, fmt); vsnprintf(tmp, sizeof(tmp), fmt, ap); va_end(ap); @@ -697,7 +698,7 @@ + if (__pri_error && pri) { + if (pri->debugfd >= 0) + write(pri->debugfd, tmp, strlen(tmp)); -+ else ++ else + __pri_error(tmp, pri->span); + } else { + fputs(tmp, stderr); @@ -705,7 +706,7 @@ } /* Set overlap mode */ -@@ -771,11 +902,13 @@ +@@ -785,11 +916,13 @@ char *pri_dump_info_str(struct pri *pri) } len += sprintf(buf + len, "Q921 Outstanding: %d\n", q921outstanding); #endif @@ -724,7 +725,7 @@ len += sprintf(buf + len, "Overlap Dial: %d\n", pri->overlapdial); len += sprintf(buf + len, "T200 Timer: %d\n", pri->timers[PRI_TIMER_T200]); len += sprintf(buf + len, "T203 Timer: %d\n", pri->timers[PRI_TIMER_T203]); -@@ -785,6 +918,7 @@ +@@ -799,6 +932,7 @@ char *pri_dump_info_str(struct pri *pri) len += sprintf(buf + len, "T313 Timer: %d\n", pri->timers[PRI_TIMER_T313]); len += sprintf(buf + len, "N200 Counter: %d\n", pri->timers[PRI_TIMER_N200]); @@ -732,7 +733,7 @@ return strdup(buf); } -@@ -826,10 +960,11 @@ +@@ -840,10 +974,11 @@ int pri_sr_set_channel(struct pri_sr *sr return 0; } @@ -745,7 +746,7 @@ return 0; } -@@ -858,3 +993,14 @@ +@@ -872,3 +1007,14 @@ int pri_sr_set_redirecting(struct pri_sr sr->redirectingreason = reason; return 0; } @@ -760,9 +761,10 @@ +#endif +#endif +} -diff -urN libpri-1.4.1.orig/pridump.c libpri-1.4.1/pridump.c ---- libpri-1.4.1.orig/pridump.c 2006-07-05 18:17:05.000000000 +0200 -+++ libpri-1.4.1/pridump.c 2007-07-11 14:25:15.000000000 +0200 +Index: libpri-1.4.3/pridump.c +=================================================================== +--- libpri-1.4.3.orig/pridump.c ++++ libpri-1.4.3/pridump.c @@ -1,9 +1,9 @@ /* * libpri: An implementation of Primary Rate ISDN @@ -775,11 +777,12 @@ * All Rights Reserved. * * This program is free software; you can redistribute it and/or modify -diff -urN libpri-1.4.1.orig/pri_facility.c libpri-1.4.1/pri_facility.c ---- libpri-1.4.1.orig/pri_facility.c 2007-06-06 23:58:22.000000000 +0200 -+++ libpri-1.4.1/pri_facility.c 2007-07-11 14:25:15.000000000 +0200 +Index: libpri-1.4.3/pri_facility.c +=================================================================== +--- libpri-1.4.3.orig/pri_facility.c ++++ libpri-1.4.3/pri_facility.c @@ -1,26 +1,17 @@ --/* + /* - * libpri: An implementation of Primary Rate ISDN - * - * Written by Matthew Fredrickson <[EMAIL PROTECTED]> @@ -802,10 +805,9 @@ - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ -+/* + This file and it's contents are licensed under the terms and conditions + of the GNU Public License. See http://www.gnu.org for details. -+ ++ + Routines for dealing with facility messages and their respective + components (ROSE) + @@ -814,12 +816,12 @@ + + Copyright (C) 2005-2006 Junghanns.NET GmbH + Klaus-Peter Junghanns <[EMAIL PROTECTED]> -+ ++ +*/ #include "compat.h" #include "libpri.h" -@@ -350,9 +341,9 @@ +@@ -350,9 +341,9 @@ int asn1_name_decode(void * data, int le if (datalen > buflen) { /* Truncate */ datalen = buflen; @@ -831,7 +833,7 @@ } int asn1_string_encode(unsigned char asn1_type, void *data, int len, int max_len, void *src, int src_len) -@@ -447,12 +438,55 @@ +@@ -447,12 +438,55 @@ static int rose_public_party_number_deco return -1; value->ton = ton; @@ -842,7 +844,7 @@ return -1; } -+static int rose_cd_destination_decode(struct pri *pri, q931_call *call, unsigned char *data, int len) ++static int rose_cd_destination_decode(struct pri *pri, q931_call *call, unsigned char *data, int len) +{ + unsigned char *vdata = data; + struct rose_component *comp1 = NULL, *comp2 = NULL; @@ -852,13 +854,13 @@ + dump_apdu (pri, data, len); + + do { -+ GET_COMPONENT(comp1, pos1, vdata, len); ++ GET_COMPONENT(comp1, pos1, vdata, len); + CHECK_COMPONENT(comp1, ASN1_SEQUENCE, "!! Invalid CD destination argument. Expected Sequence (0x30) but Received 0x%02X\n"); + SUB_COMPONENT(comp1, pos1); + GET_COMPONENT(comp1, pos1, vdata, len); + switch (comp1->type) { + case (ASN1_SEQUENCE | ASN1_CONSTRUCTOR): -+ sublen2 = comp1->len; ++ sublen2 = comp1->len; + pos2 = pos1; + comp2 = comp1; + SUB_COMPONENT(comp2, pos2); @@ -888,7 +890,7 @@ static int rose_address_decode(struct pri *pri, q931_call *call, unsigned char *data, int len, struct addressingdataelements_presentednumberunscreened *value) { int i = 0; -@@ -517,11 +551,10 @@ +@@ -517,11 +551,10 @@ static int rose_address_decode(struct pr pri_message(pri, "!! Unknown Party number component received 0x%X\n", comp->type); return -1; } @@ -901,7 +903,7 @@ } while (0); -@@ -531,7 +564,6 @@ +@@ -531,7 +564,6 @@ static int rose_address_decode(struct pr static int rose_presented_number_unscreened_decode(struct pri *pri, q931_call *call, unsigned char *data, int len, struct addressingdataelements_presentednumberunscreened *value) { int i = 0; @@ -909,7 +911,7 @@ struct rose_component *comp = NULL; unsigned char *vdata = data; -@@ -546,9 +578,7 @@ +@@ -546,9 +578,7 @@ static int rose_presented_number_unscree switch(comp->type) { case (ASN1_CONTEXT_SPECIFIC | ASN1_CONSTRUCTOR | ASN1_TAG_0): /* [0] presentationAllowedNumber */ value->pres = PRES_ALLOWED_USER_NUMBER_NOT_SCREENED; @@ -920,7 +922,7 @@ case (ASN1_CONTEXT_SPECIFIC | ASN1_TAG_1): /* [1] IMPLICIT presentationRestricted */ if (comp->len != 0) { /* must be NULL */ pri_error(pri, "!! Invalid PresentationRestricted component received (len != 0)\n"); -@@ -565,9 +595,7 @@ +@@ -565,9 +595,7 @@ static int rose_presented_number_unscree return 2; case (ASN1_CONTEXT_SPECIFIC | ASN1_CONSTRUCTOR | ASN1_TAG_3): /* [3] presentationRestrictedNumber */ value->pres = PRES_PROHIB_USER_NUMBER_NOT_SCREENED; @@ -931,7 +933,7 @@ default: pri_message(pri, "Invalid PresentedNumberUnscreened component 0x%X\n", comp->type); } -@@ -578,7 +606,7 @@ +@@ -578,7 +606,7 @@ static int rose_presented_number_unscree return -1; } @@ -940,7 +942,7 @@ { int i = 0; int diversion_counter; -@@ -587,21 +615,9 @@ +@@ -587,21 +615,9 @@ static int rose_diverting_leg_informatio struct addressingdataelements_presentednumberunscreened divertingnr; struct addressingdataelements_presentednumberunscreened originalcallednr; struct rose_component *comp = NULL; @@ -963,7 +965,7 @@ do { /* diversionCounter stuff */ GET_COMPONENT(comp, i, vdata, len); -@@ -619,20 +635,18 @@ +@@ -619,20 +635,18 @@ static int rose_diverting_leg_informatio if(pri->debug & PRI_DEBUG_APDU) pri_message(pri, " Redirection reason: %d, total diversions: %d\n", diversion_reason, diversion_counter); @@ -987,7 +989,7 @@ comp->len = res; if (res < 0) return -1; -@@ -641,43 +655,33 @@ +@@ -641,43 +655,33 @@ static int rose_diverting_leg_informatio pri_message(pri, " ton = %d, pres = %d, npi = %d\n", divertingnr.ton, divertingnr.pres, divertingnr.npi); } break; @@ -1038,7 +1040,7 @@ if (divertingnr.pres >= 0) { call->redirectingplan = divertingnr.npi; -@@ -690,15 +694,19 @@ +@@ -690,15 +694,19 @@ static int rose_diverting_leg_informatio call->origcalledpres = originalcallednr.pres; libpri_copy_string(call->origcallednum, originalcallednr.partyaddress, sizeof(call->origcallednum)); } @@ -1061,7 +1063,7 @@ static int rose_diverting_leg_information2_encode(struct pri *pri, q931_call *call) { int i = 0, j, compsp = 0; -@@ -916,6 +924,131 @@ +@@ -916,6 +924,131 @@ static int add_dms100_transfer_ability_a return 0; } @@ -1077,7 +1079,7 @@ + ASN1_PUSH(compstk, compsp, comp); + + ASN1_ADD_BYTECOMP(comp, ASN1_INTEGER, buffer, i, get_invokeid(pri)); -+ ASN1_ADD_BYTECOMP(comp, ASN1_INTEGER, buffer, i, ROSE_CALLDEFLECTION); ++ ASN1_ADD_BYTECOMP(comp, ASN1_INTEGER, buffer, i, ROSE_CALLDEFLECTION); + + /* Argument sequence */ + ASN1_ADD_SIMPLE(comp, (ASN1_CONSTRUCTOR | ASN1_SEQUENCE), buffer, i); @@ -1086,11 +1088,11 @@ + /* arg.Address */ + ASN1_ADD_SIMPLE(comp, (ASN1_CONSTRUCTOR | ASN1_SEQUENCE), buffer, i); + ASN1_PUSH(compstk, compsp, comp); -+ ++ +#ifndef CD_UNLIKE_IN_CAPI + /* arg.address.PartyNumber */ + <<Diff was trimmed, longer than 597 lines>> ---- CVS-web: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/libpri-bristuff-bristuff.patch?r1=1.1&r2=1.2&f=u _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
