On Jun 1, 2014, at 4:09 PM, Philip Guenther <guent...@gmail.com> wrote:

> On Sat, 31 May 2014, Brent Cook wrote:
>> with pqueue moving to a private interface, the typedef can occur twice
>> 
>> ../include/openssl/dtls1.h:147:25: error: redefinition of typedef 'pqueue' 
>> is a C11 feature [-Werror,-Wtypedef-redefinition]
>> typedef struct _pqueue *pqueue;
>>                        ^
>> ../include/pqueue.h:63:25: note: previous definition is here
>> typedef struct _pqueue *pqueue;
> 
> It would be better to just eliminate the typedef from the public header, 
> IMO.  Since pqueue is a private interface and the header defining the 
> struct isn't even exported, there's no (sane) way for someone else to use 
> the typedef.
> 
> (Side note: a #define like HAVE_STRUCT_PQUEUE not only falls in the 
> application namespace, but in the namespace that autohell squats on, make 
> it a bad choice for anything not related to autohell.)

Agreed - updated and will resend.

> 
> Philip Guenther
> 
> 
> Index: dtls1.h
> ===================================================================
> RCS file: /cvs/src/lib/libssl/src/ssl/dtls1.h,v
> retrieving revision 1.11
> diff -u -p -r1.11 dtls1.h
> --- dtls1.h   30 May 2014 14:30:50 -0000      1.11
> +++ dtls1.h   1 Jun 2014 20:56:03 -0000
> @@ -144,11 +144,10 @@ struct dtls1_timeout_st {
> };
> 
> struct _pqueue;
> -typedef struct _pqueue *pqueue;
> 
> typedef struct record_pqueue_st {
>       unsigned short epoch;
> -     pqueue q;
> +     struct _pqueue *q;
> } record_pqueue;
> 
> typedef struct hm_fragment_st {
> @@ -191,10 +190,10 @@ typedef struct dtls1_state_st {
>       record_pqueue processed_rcds;
> 
>       /* Buffered handshake messages */
> -     pqueue buffered_messages;
> +     struct _pqueue *buffered_messages;
> 
>       /* Buffered (sent) handshake records */
> -     pqueue sent_messages;
> +     struct _pqueue *sent_messages;
> 
>       /* Buffered application records.
>        * Only for records between CCS and Finished


Reply via email to